﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Linq;
using System.Data.Linq;
using QLTVNEW.Properties;
using System.Windows.Forms;
using DevComponents.DotNetBar;
using System.Data;

namespace QLTVNEW
{
    public partial class frmLoaiDocGia : DevComponents.DotNetBar.Office2007Form
    {
        public frmLoaiDocGia()
        {
            InitializeComponent();
            DataLoadOptions dlo = new DataLoadOptions();
            dlo.LoadWith<LOAIDOCGIA>(d => d.DOCGIAs);
            db.LoadOptions = dlo;
        }

        QLTVDataContext db = new QLTVDataContext();

        #region 'LT'
        void txtReadOnly(bool a)
        {
            txtMa.ReadOnly=a;
            txtTen.ReadOnly=a;
        }
        void btnThem(bool a)
        {
            btnupdate.Enabled = a;
            btndel.Enabled=a;
        }

        void btnSua(bool a)
        {
            btninsert.Enabled=a;
            btndel.Enabled=a;
        }

        void ThemCancel()
        {
            btninsert.Image = Resources.Cancel;
            superTooltip1.SetSuperTooltip(btninsert, new SuperTooltipInfo("Huỷ Bỏ Thao Tác Thêm.", "", "", null, null, eTooltipColor.Lemon, true, true, new System.Drawing.Size(135, 21)));
        }
        void ThemOK()
        {
            btninsert.Image = Resources.add1_;
            superTooltip1.SetSuperTooltip(btninsert, new SuperTooltipInfo("Thêm Thể Loại Sách.", "", "", null, null, eTooltipColor.Lemon, true, true, new System.Drawing.Size(130, 21)));
        }

        void SuaCancel()
        {
            btnupdate.Image = Resources.Cancel;
            superTooltip1.SetSuperTooltip(btnupdate, new SuperTooltipInfo("Huỷ Bỏ Thao Tác Sửa.", "", "", null, null, eTooltipColor.Lemon, true, true, new System.Drawing.Size(130, 21)));
        }

        void SuaOK()
        {
            btnupdate.Image = Resources.edit;
            superTooltip1.SetSuperTooltip(btnupdate, new SuperTooltipInfo("Sửa Thể Loại Sách.", "", "", null, null, eTooltipColor.Lemon, true, true, new System.Drawing.Size(130, 21)));
        }

        void LoadGridView()
        {
            var query=from dg in db.LOAIDOCGIAs select dg;
            GVW.DataSource = query;
        }
        #endregion
        private void frmLoaiDocGia_Load(object sender, EventArgs e)
        {
            txtReadOnly(true);
            LoadGridView();
           
            txtMa.Text = GVW.Rows[0].Cells[0].Value.ToString().Trim();
            txtTen.Text = GVW.Rows[0].Cells[1].Value.ToString().Trim();
        }

        private void btncancel_Click(object sender, EventArgs e)
        {
            this.AutoValidate = AutoValidate.Disable;
            this.Close();
        }
        
        private void btnclear_Click(object sender, EventArgs e)
        {
            txtReadOnly(false);
            foreach (Control ctr in groupBox1.Controls)
            {
                if (ctr is TextBox)
                {
                    ctr.Text = "";
                    labelX1.Focus();
                }
            }
        }

        private void btninsert_Click(object sender, EventArgs e)
        {
            if (btnsave.Enabled == false)
            {
                txtReadOnly(false);
                txtMa.ReadOnly = true;
                btnThem(false);
                ThemCancel();
                btnsave.Enabled = true;
          
            }
            else
            {
                btnsave.Enabled = false;
                ThemOK();
                btnThem(true);
                txtReadOnly(false);
            }
        }

        private void btnupdate_Click(object sender, EventArgs e)
        {
            if (btnsave.Enabled == false)
            {

                txtReadOnly(false);
                txtMa.ReadOnly = true;
                btnSua(false);
                SuaCancel();
                btnsave.Enabled = true;

            }
            else
            {
                btnsave.Enabled = false;
                SuaOK();
                btnSua(true);
                txtReadOnly(true);
            }
        }

        private void btnsave_Click(object sender, EventArgs e)
        {
            if (btnupdate.Enabled==false)
            {
                if (txtMa.Text!="")
                {
                    LOAIDOCGIA ldg = db.LOAIDOCGIAs.Where(g => g.MaLoaiDocGia ==txtMa.Text).SingleOrDefault<LOAIDOCGIA>();
                    if (ldg==null)
                    {
                        string err = "";
                        db.uspCRUDLOAIDOCGIA('t', txtMa.Text, txtTen.Text, ref err);
                        MessageBox.Show(err.ToString(),"Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
                        db.SubmitChanges();
                        ThemOK();
                        btnThem(true);
                        btnsave.Enabled = false;
                        btninsert.Image = Resources.add1_;
                        txtReadOnly(true);

                    }
                    else
                        MessageBox.Show("Mã Loại Độc Giả Đã Tồn Tại","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                }
                else
                    MessageBox.Show("Chưa Nhập Mã Loại Độc Giả","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }
            if (btninsert.Enabled==false)
            {
                if (txtMa.Text!="" )
                {
                    LOAIDOCGIA lg = db.LOAIDOCGIAs.Where(g => g.MaLoaiDocGia == txtMa.Text).SingleOrDefault<LOAIDOCGIA>();
                    if (lg!=null)
                    {
                        db.Connection.Open();
                        db.Transaction = db.Connection.BeginTransaction();
                        try
                        {
                            lg.TenLoaiDocGia = txtTen.Text;
                            db.SubmitChanges();
                            db.Transaction.Commit();
                            MessageBox.Show("Sửa Thành Công ", "Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);

                        }
                        catch (System.Exception ex)
                        {
                            MessageBox.Show(ex.Message,"Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                            db.Transaction.Rollback();
                        }
                        finally
                        {
                            if (db.Connection.State==ConnectionState.Open)
                            {
                                db.Connection.Close();
                            }
                            db.Transaction = null;
                            SuaOK();
                            txtReadOnly(true);
                            btnupdate.Image = Resources.edit;
                            btnsave.Enabled = false;
                            LoadGridView();
                        }
                    }
                    else
                        MessageBox.Show("Loại Độc Giả Không Tồn Tại","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
                } 
                else
                    MessageBox.Show("Chưa Nhập Mã Loại Độc Giả", "Thông Báo", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                
            }
        }

        private void btndel_Click(object sender, EventArgs e)
        {
            if (txtMa.Text!="")
            {
                string err = "";
                db.uspCRUDLOAIDOCGIA('x', txtMa.Text, txtTen.Text, ref err);
                MessageBox.Show(err.ToString(),"Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Information);
                db.SubmitChanges();
                LoadGridView();
            } 
            else
            {
                MessageBox.Show("Mã Loại Độc Giả Không Tồn Tại","Thông Báo",MessageBoxButtons.OK,MessageBoxIcon.Warning);
            }
        }
        int dong;
        private void GVW_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                dong = e.RowIndex;
                txtMa.Text = GVW.Rows[dong].Cells[0].Value.ToString().Trim();
                txtTen.Text = GVW.Rows[dong].Cells[1].Value.ToString().Trim();
            }
            catch
            {
                return;
            }
        }
    }
}
